Information processing apparatus, print control method therefor, and storage medium

ABSTRACT

In a print control method for an information processing apparatus which segments a surface of a sheet into a plurality of areas and controls layout of print data in the respective segmented areas, print settings are made, and it is determined whether a surface to an imposition process is an upper or lower surface. Page orders on the upper and lower surfaces which match each other are set in accordance with the determination result. An imposition process is performed on the basis of the set page orders.

FIELD OF THE INVENTION

[0001] The present invention relates to an information processingapparatus which generates print data that can be printed by a printer, aprint control method for the apparatus, and a storage medium.

BACKGROUND OF THE INVENTION

[0002] Conventionally, when printing is to be performed on postcards, amethod of performing printing on the postcards one by one is generallyused. In this case, many wordprocessors or so-called envelope addresserssupport layouts in accordance with postal cards, and allow zip codes andthe like to be precisely set in printed frames.

[0003] A four-postcard sheet is also available, on which four postcardsare arranged in a 2×2 matrix.

[0004] Such four-postcard sheets can be used even in conventionalprinters which could not use postcards because their paper size was toosmall. A printer designed to charge a user based on the print speed orthe number of sheets printed is required to support the use offour-postcard sheets because of the economical reason, that is, thecharge reduces to ¼.

[0005] In order to provide a layout scheme capable of precisely settingall data in the four postcard frames on such a four-postcard sheet, thepage order of the data must be controlled such that the upper-surfacedata (addresses) and the lower-surface data (texts) must properlycorrespond to each other. An address and text may not match, and wrongdata may be used for a given person.

[0006] In addition, if not all four surfaces are used, the remainingsurface is wasted. In the case of a four-postal-card sheet, inparticular, not only paper but also the cost of a postage stamp iswasted.

[0007] In the case of a four-postcard sheet, a fixed layout is used. If,therefore, preceding settings such as a binding margin andenlargement/reduction are left unchanged, this directly leads to printerrors.

[0008] Furthermore, a four-postcard sheet is a special sheet, whichdemands management of security and charging.

SUMMARY OF THE INVENTION

[0009] The present invention has been made to solve the above problems,and has as its object to provide an information processing apparatuswhich can segment a sheet into a plurality of areas and lays out upper-and lower-surface data in the respective segmented areas incorrespondence with each other, a print control method for theapparatus, and a storage medium.

[0010] In order to achieve the above object, according to one aspect ofthe present invention, there is provided an information processingapparatus which segments a surface of a sheet into a plurality of areasand controls layout of print data in the respective segmented areas,comprising print setting means for making a print setting, determinationmeans for determining whether a surface to an imposition process is anupper or lower surface, page order setting means for setting page orderson the upper and lower surfaces which match each other in accordancewith the determination result, and imposition process means forperforming an imposition process on the basis of the set page orders.

[0011] According to an aspect of the present invention, there isprovided a print control method for an information processing apparatuswhich segments a surface of a sheet into a plurality of areas andcontrols layout of print data in the respective segmented areas,comprising the print setting step of making a print setting, thedetermination step of determining whether a surface to an impositionprocess is an upper or lower surface, the page order setting step ofsetting page orders on the upper and lower surfaces which match eachother in accordance with the determination result, and the impositionprocess step of performing an imposition process on the basis of the setpage orders.

[0012] According to an aspect of the present invention, there isprovided a computer-readable storage medium storing a program for aprint control method for an information processing apparatus whichsegments a surface of a sheet into a plurality of areas and controlslayout of print data in the respective segmented areas, the programincluding a module for generating a control command to a printer, aprint setting module for making a print setting, a determination modulefor determining whether a surface to an imposition process is an upperor lower surface, a page order setting module for setting page orders onthe upper and lower surfaces which match each other in accordance withthe determination result, and an imposition process module forperforming an imposition process on the basis of the set page orders.

[0013] According to an aspect of the present invention, there isprovided a program for a print control program for an informationprocessing apparatus which segments a surface of a sheet into aplurality of areas and controls layout of print data in the respectivesegmented areas, the program causing a computer to execute the step ofgenerating a control command to a printer, the print setting step ofmaking a print setting, the determination step of determining whether asurface to an imposition process is an upper or lower surface, the pageorder setting step of setting page orders on the upper and lowersurfaces which match each other in accordance with the determinationresult, and the imposition process step of performing an impositionprocess on the basis of the set page orders.

[0014] Other features and advantages of the present invention will beapparent from the following description taken in conjunction with theaccompanying drawings, in which like reference characters designate thesame or similar parts throughout the figures thereof.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015]FIG. 1 is a block diagram showing the arrangement of a printercontrol system according to an embodiment of the present invention;

[0016]FIG. 2 is a block diagram showing print processing executed by ahost computer 3000;

[0017]FIG. 3 is a block diagram showing an arrangement for temporarilyspooling a print instruction from an application in the form ofintermediate code data;

[0018]FIG. 4 is a sectional view showing the structure of a printeraccording to this embodiment;

[0019]FIG. 5 is a flow chart showing a generation process executed by aspooler 302;

[0020]FIG. 6 is a flow chart showing control performed by a spool filemanager 304;

[0021]FIG. 7 is a flow chart showing a print data generation processexecuted by a despooler 305;

[0022]FIG. 8 is a view showing a dialog for inputting print settings;

[0023]FIG. 9 is a view showing a property window of a printer driver;

[0024]FIG. 10 is a view showing an example of a job output setting filein this embodiment;

[0025]FIG. 11 is a view showing an example of job setting information ina field 1002 in FIG. 10;

[0026]FIG. 12 is a view showing an example of physical page informationin a field 1004 in FIG. 10;

[0027]FIG. 13 is a view showing an example of physical page informationin a field 1202 in FIG. 12;

[0028]FIG. 14 is a view showing an example of logical page informationin a field 1204 in FIG. 12;

[0029]FIG. 15 is a flow chart showing a job setting change processexecuted by a setting change editor 307;

[0030]FIG. 16 is a view showing a window of a spool file manager;

[0031]FIG. 17 is a view showing a large preview based on m?print processsettings included in a spool file 303;

[0032]FIG. 18 is a view showing a job setting window;

[0033]FIG. 19 is a view showing the layouts of upper- and lower-surfacedata of a four-postcard sheet in this embodiment;

[0034]FIG. 20 is a flow chart showing the processing of changing thepage orders on the upper and lower surfaces;

[0035]FIG. 21 is a flow chart showing the processing to be performedwhen printing is continuously performed on a used sheet;

[0036]FIG. 22 is a flow chart showing layout setting and securityprocessing to be performed upon designation of a four-postcard sheet;

[0037]FIG. 23 is a view showing a GUI for setting a used portion of thefirst sheet;

[0038]FIG. 24 is a view for explaining the concept of the processing ofperforming printing on the remaining portions of a sheet that has beenused halfway;

[0039]FIG. 25 is a flow chart showing the processing of storing physicalpage information;

[0040]FIG. 26 is a view showing an example of a property dialog GUI formaking print settings in a printer driver to set a four-postcard sheet;

[0041]FIG. 27 is a view showing a specific example of a GUI fordesignating a four-postcard sheet;

[0042]FIG. 28 is a view showing a radio button 2801 of a GUI forselecting a postcard type upon selection of a postcard with an outputsheet setting 2701 in FIG. 27;

[0043]FIG. 29 is a flow chart showing processing serving as the basis ofprocessing for determining an upper or lower surface by the despooler305;

[0044]FIG. 30 is a flow chart showing the processing of assigning upper-and lower-surface data when the processing order of original page datais the first upper surface, first lower surface, second upper surface,second lower surface, . . . ; and

[0045]FIG. 31 is a flow chart showing the processing of generating printdata by a printer driver or print tool.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0046] An embodiment of the present invention will be described indetail below with reference to the accompanying drawings.

[0047] Prior to a description of this embodiment, a description will bemade on the arrangement of a system constituted by a printer to whichthe present invention can be applied and an information processingapparatus such as a personal computer connected to the printer, and morespecifically, the arrangement of a printing system including a spoolerserving as a spool means for temporarily storing print data in a dataform (so-called intermediate code) different from the form of the printdata to be sent to the printer before generation of the print data to betransmitted to the printer, a despooler serving as a despooling meansfor generating the print data to be finally sent to the printer from thedata temporarily stored in this intermediate code form, and a printerdriver serving as a means for generating a printer control command.

[0048]FIG. 1 is a block diagram showing the arrangement of a printercontrol system according to this embodiment. As shown in FIG. 1, theprinter control system is comprised of a host computer 3000 and printer1500.

[0049] The present invention can be applied to a single device, a systemconstituted by a plurality of devices, and a system connected through anetwork such as a LAN or WAN to perform processing.

[0050] The host computer 3000 shown in FIG. 1 includes a CPU 1 whichprocesses documents containing mixtures of graphic patterns, images,characters, tables (including spreadsheets), and the like on the basisof document processing programs and the like stored in a program ROM ina ROM 3 or an external memory (HD, FD) 11. The CPU 1 systematicallycontrols the respective devices connected to a system bus 4. Anoperating system (to be referred to as an “OS” hereinafter) and the likeserving as control programs for the CPU 1 are stored in the program ROMin the ROM 3 or the external memory 11. Font data and the like arestored in the font ROM in the ROM 3 or the external memory 11. Variousdata to be used for document processing and the like are stored in thedata ROM in the ROM 3 and the external memory 11. A RAM 2 functions asthe main memory, work area, and the like of the CPU 1.

[0051] In the host computer 3000, reference numeral 5 denotes a keyboardcontroller (KBC) for controlling inputs from a keyboard 9 or pointingdevice (not shown); 6, a CRT controller (CRTC) for controlling a CRTdisplay (CRT) 10; 7, a disk controller (DKC) for controlling access tothe external memories 11 such as a hard disk (HD) and floppy disk (FD)in which a boot program, various applications, font data, user files,edit files, printer control command generation program (to be referredto as a “printer driver” hereinafter), and the like are stored; and 8, aprinter controller (PRTC) for executing communication control processingwith the printer 1500 through a bidirectional interface (interface) 21.

[0052] Note that the CPU 1 rasterizes, for example, an outline font to adisplay information area set on the RAM 2 to realize WYSIWYG on the CRT10. The CPU 1 also executes various data processes by opening variousregistered windows on the basis of commands designated with a mousecursor (not shown) on the CRT 10. This allows the user to open windowsassociated with print settings, in executing printing operation, so asto set the printer and set a print processing method for the printerdriver, including selection of a print mode and the like.

[0053] In the printer 1500, reference numeral 12 denotes a CPU whichoutputs an image signal as output information to a printing unit(printer engine) 17 connected to a system bus 15 on the basis of controlprograms and the like stored in a program ROM in a ROM 13 and controlprograms and the like stored in an external memory 14. Control programsand the like for the CPU 12 are stored in the program ROM in the ROM 13.Font data and the like to be used to generate output information arestored in the font ROM in the ROM 13. Information and the like to beused on a host computer are stored in the data ROM in the ROM 13 in aprinter in the absence of the external memory 14 such as a hard disk.

[0054] The CPU 12 can perform communication processing with the hostcomputer 3000 through an input unit 18, and can notify the host computer3000 of information and the like in the printer 1500. A RAM 19 functionsas the main memory, work area, and the like of the CPU 12 and isdesigned to expand its memory capacity with an optioned RAM connected toan expansion port (not shown).

[0055] Note that the RAM 19 is used as an output information developmentarea, environmental data storage area, NVRAM, and the like. A memorycontroller (MC) 20 controls access to the above external memory 14 suchas a hard disk (HD) or IC card. The external memory 14 is connected asan option to store font data, an emulation program, form data, and thelike. An operation panel 1501 is comprised of switches, LED displaydevices, and the like which are used for operation.

[0056] The number of external memories 14 described above may not belimited to one, and this system may be designed to allow connection of aplurality of optional cards and a plurality of external memories whichstore programs for interpreting printer control languages based ondifferent language systems, in addition to the built-in fonts.Furthermore, the system may have an NVRAM (not shown) to store printermode setting information from the operation panel 1501.

[0057] Typical print processing to be executed by a host computer towhich a printing apparatus such as a printer is connected directly orthrough a network will be described next.

[0058]FIG. 2 shows the print processing executed by the host computer3000. Referring to FIG. 2, an application 201, graphic engine 202,printer driver 203, and system spooler 204 exist as files stored in theexternal memory 11, and serve as program modules each of which is loadedinto the RAM 2 by the OS or another module that uses it when it isexecuted. The application 201 and printer driver 203 can also beinstalled in the HD as the external memory 11 through the FD as theexternal memory 11, a CD-ROM (not shown), or a network (not shown).

[0059] First of all, the application 201 stored in the external memory11 is loaded into the RAM 2 and executed. When the keyboard 9 or a mouse(not shown) is operated to give an instruction to perform printing fromthe application 201 to the printer 1500, output operation (printing) isperformed by using the graphic engine 202 that is also loaded into theRAM 2 and set in a ready condition.

[0060] In this case, the graphic engine 202 loads the printer driver 203prepared for each printing apparatus from the external memory 11 intothe RAM 2, and sets an output from the application 201 in the printerdriver 203. The graphic engine 202 then converts a GDI (Graphic DeviceInterface) function received from the application 201 into the DDI(Device Driver Interface) function, and outputs the DDI function to theprinter driver 203.

[0061] The printer driver 203 converts the DDI function received fromthe graphic engine 202 into a control command that can be recognized bythe printer 1500, e.g., a PDL (Page Description Language) command. Theconverted printer control command is transferred to the system spooler204 loaded into the RAM 2 by the OS and output as print data to theprinter 1500 through the interface 21.

[0062] The printing system according to this embodiment will bedescribed next. This embodiment has an arrangement for temporarilyspooling print data from an application in the form of intermediate codedata, as shown in FIG. 3, in addition to the printing system constitutedby the printer and host computer shown in FIG. 2.

[0063]FIG. 3 shows the arrangement obtained by extending the systemshown in FIG. 2. In this arrangement, when a print instruction is to besent from the graphic engine 202 to the printer driver 203, a spool file303 formed by an intermediate code is temporarily generated.

[0064] In the system shown in FIG. 2, the application 201 is releasedfrom print processing when the printer driver 203 completely convertsall print instructions from the graphic engine 202 into controlcommands.

[0065] In contrast to this, in the system shown in FIG. 3, theapplication 201 is released when a spooler 302 completely converts allprint instructions into intermediate code data and outputs the data tothe spool file 303. According to the system shown in FIG. 3, therefore,the application 201 is released from print processing in a short periodof time. In addition, in the system shown in FIG. 3, the contents of thespool file 303 can be processed. This makes it possible to realizefunctions which the application 201 does not provide, e.g., thefunctions of enlarging/reducing print data from the application 201, andprinting data upon reducing a plurality of pages into one page.

[0066] As described above, in comparison with the system shown in FIG.2, the system shown in FIG. 3 is extended to spool intermediate codedata. In general, to process print data, settings are made from windowsprovided by the printer driver 203, and the printer driver 203 storesthe set contents in the RAM 2 or external memory 11.

[0067] Print processing in the system shown in FIG. 3 will be describedin detail next. As shown in FIG. 3, in this extended processing scheme,a dispatcher 301 receives a DDI function as a print instruction from thegraphic engine 202. If the print instruction (DDI function) receivedfrom the graphic engine 202 is based on the print instruction (GDIfunction) issued from the application 201 to the graphic engine 202, thedispatcher 301 loads the spooler 302 stored in the external memory 11into the RAM 2 and sends the print instruction (DDI function) to thespooler 302 instead of the printer driver 203.

[0068] The spooler 302 analyzes the received print instruction, convertsit into intermediate codes on a page basis, and outputs the codes to thespool file 303. A spool file of such intermediate codes stored on a pagebasis will be referred to as a page description file (PDF). In addition,the spooler 302 acquires, from the printer driver 203, process settings(bookbinding/printing, Nup, 2 sided, stapling, color/monochrome, and thelike) associated with print data which are set with respect to theprinter driver 203, and stores them as job-specific files in the spoolfile 303. Each setting file stored on a job basis will be referred to asa job setting file (abbreviated as SDF: Spool Description File). Thisjob setting file will be further described later.

[0069] Although the spool file 303 is generated as a file in theexternal memory 11, it may be generated in the RAM 2. The spooler 302loads a spool file manager 304 stored in the external memory 11 into theRAM 2, and notifies the spool file manager 304 of the generated state ofthe spool file 303. The spool file manager 304 then determines whetherprinting can be performed in accordance with the contents of processsettings associated with the print data stored in the spool file 303.

[0070] In this case, if the spool file manager 304 determines thatprinting can be performed by using the graphic engine 202, the spoolfile manager 304 loads a despooler 305 stored in the external memory 11into the RAM 2 and gives the despooler 305 an instruction to performprint processing for the intermediate code page description filedescribed in the spool file 303. With this operation, the despooler 305generates a GDI function again by processing the intermediate code pagedescription file contained in the spool file 303 in accordance with ajob setting file that includes process setting information and iscontained in the spool file 303, and outputs the GDI function throughthe graphic engine 202.

[0071] If the print instruction (DDI function) received from the graphicengine 202 is based on the print instruction (GDI function) issued fromthe despooler 305 to the graphic engine 202, the dispatcher 301 sends aprint instruction to the printer driver 203 instead of the spooler 302.With this operation, the printer driver 203 generates a printer controlcommand formed by a page description language or the like on the basisof the DDI function acquired from the graphic engine 202, and outputsthe command to the printer 1500 through the system spooler 204.

[0072]FIG. 3 shows an example of a system having a previewer 306 andsetting change editor 307, in addition to the arrangement of theextended system described above, to allow previewing, print settingchanging, and merging of a plurality of jobs.

[0073] To perform print previewing, print setting changing, and mergingof a plurality of jobs, the user must designate “store” by a pull-downmenu serving as a means for “designating output destination” on theproperty window of the printer driver shown in FIG. 9. If the user wantsto see only a preview, he/she can select “preview” as designation of anoutput destination.

[0074] As described above, the contents set in the property of theprinter driver are stored in a structure provided as a setting file bythe OS (for example, the structure called DEVMODE in a Windows OS). Inthis structure, for example, a setting that indicates whether to storedata in the spool file manager 304 is included in the process settingsstored in the spool file 303. If the spool file manager 304 readsprocessing settings through the printer driver, and “store” isdesignated, a page description file and job setting file are generatedand stored in the spool file 303, as described above. As shown in FIG.16, a window of the spool file manager pops up to display a list of jobsspooled in the spool file 303.

[0075]FIG. 16 shows an example of how four jobs are spooled. The jobscan be operated by pressing a menu bar 1601 or menu icons 1602 locatedimmediately below the bar. The number of operations implemented by themenu bar 1601 is equal to that implemented by menu icons 1602. There are11 types of operations, namely “print” to print while a job is selected;“save and print” to print while saving an intermediate code spool file;“preview” to see an output preview of a job in consideration of printsettings; “delete” to delete an intermediate code spool file; “copy” togenerate a copy of an intermediate code spool file; “merge” to mergejobs based on a plurality of intermediate code spool files into one job;“divide” to divide a merged job into a plurality of jobs; “job edit” tochange print settings (layout setting, finishing setting, and the like)for a single job or merged job; “move to beginning” to set a desired jobto the beginning of a printing order, “move upward by one” to move theposition of a desired job upward by one in a printing order; “movedownward by one” to move the position of a desired job downward by onein a printing order; and “move to end” to move a desired job to the endof a printing order.

[0076] If “preview” is designated with respect to a signal job or mergedjob on the window of the spool file manager shown in FIG. 16, thepreviewer 306 stored in the external memory 11 is loaded into the RAM 2,and an instruction to perform preview processing for an intermediatecode job described in the spool file 303 is given to the previewer 306.

[0077] The previewer 306 sequentially reads out intermediate code pagedescription files (PDFs) contained in the spool file 303, processes themin accordance with the process setting information contained in jobsetting files (SDFs) stored in the spool file 303, and outputs GDIfunctions to the graphic engine 202. When the graphic engine 202 outputsprint data in an client area set in the engine itself, output operationon the window is allowed.

[0078] In addition, the graphic engine 202 can perform proper renderingin accordance with a designated output destination. With this operation,like the despooler 305, the previewer 306 can be implemented by themethod of processing intermediate codes contained in the spool file 303in accordance with the contents of process settings contained in thespool file 303 and outputting the resultant data by using the graphicengine 202.

[0079] In this manner, process settings set in the printer driver 203are stored as a job setting file in the spool file 303, the data of apage description file is processed on the basis of the job setting file,and the resultant data is output. This provides the user with a printpreview that indicates how the actual print data will be printed or isclosest to the data output by the printer in accordance with a casewhere Nup (the processing of reducing/arranging N logical pages into onephysical page and printing the page) is designated, 2 sided printing isdesignated, bookbinding/printing is designated, or “stamp” isdesignated.

[0080] Note that the preview function provided by conventionalapplication software such as a document generation application isdesired to display data on the basis of page settings in theapplication, and hence print settings in the printer driver 203 are notreflected, and the user cannot be made to recognize a preview of anactual printout.

[0081] By performing preview processing in the above manner, a largepreview based on the print settings contained in the spool file 303 isdisplayed on a window by the previewer 306, as shown in FIG. 17. Whenthe user gives an instruction to stop display, the previewer 306 isclosed, and control is transferred to the window of the spool filemanager shown in FIG. 16.

[0082] When the user is to perform printing in accordance with thecontents displayed by the previewer 306, he/she issues a print requestby designating “print” or “save and print” on the window of the spoolfile manager 304. With this operation, the despooler 305 generates a GDIfunction by processing a page description file on the basis of a jobsetting file. The print request is sent to the graphic engine 202 andsent to the printer driver 203 through the dispatcher 301, therebyexecuting print operation.

[0083] Setting change operation using the setting change editor 307 willbe described next. Like “preview”, this operation can be set withrespect to a job for which “store” is designated in FIG. 9. With similarprocessing, the window of the spool file manager 304 pups up to displaya list of spooled jobs. When “job edit” is designated and setting changeoperation is designated on the window of the spool file manager 304, thesetting change editor 307 stored in the external memory 11 is loadedinto the RAM 2, and an instruction to display current or default processsettings is given to the setting change editor 307. A job setting windowlike the one shown in FIG. 18 is then displayed.

[0084] The setting change editor 307 acquires a job setting file for thejob for which “job edit” is designated from the spool file 303, andchanges the default values on the job setting window shown in FIG. 18 onthe basis of the setting items designated in the job setting file. Inthe example shown in FIG. 18, in the job setting file for the job forwhich “job edit” is designated, the following are designated: “copies”:1; “print style”: 1-sided printing; “staple”: no; “layout consistency”:1 page per sheet; and the like.

[0085] The setting change editor 307 also processes the intermediatecode page description file contained in the spool file 303 in accordancewith the contents of the process settings stored in the job setting filestored in the spool file 303, and outputs the resultant data to theclient area of the engine itself, thereby outputting a small preview onthe window shown in FIG. 18.

[0086] Furthermore, in this case, the contents of the process settingsstored in the job setting file stored in the spool file 303 can bechanged/modified. In this case, the setting change editor 307 may have,on its user interface, items for the printer driver 203 which can beset, or the user interface of the printer driver 203 may be invoked.

[0087] As shown in FIG. 18, “copies”, “print style” (1 sided printing, 2sided printing, or bookbinding/printing), “staple” (saddle finisher orthe like), “page layout”, “page order”, and the like can be designated.In addition, when “details” is pressed, most of the items that can bedesignated by the printer driver can be changed. Assume, however, thatthe user is not permitted to change settings associated with printquality, e.g., resolution and graphic mode.

[0088] With regard to each item changed in this case, the change isauthenticated in accordance with an authentication request on thesetting change editor 307. Control is then transferred to the spool filemanager 304. When a change is authenticated, the changed print settingis stored. However, this setting is not stored in the original jobsetting file but is stored in a newly generated job output setting fileused in job edit operation and the like. The details of a job outputsetting file will be described later with reference to FIG. 10 and thesubsequent drawings.

[0089] When the user is to print the data in accordance with the settingchange contents upon checking the data on the previewer 306, he/sheissues a print request on the spool file manager 304. The print requestis sent to the graphic engine 202 and is set to the printer driver 203through the dispatcher 301, thereby executing print operation.

[0090] On the window of the spool file manager 304 shown in FIG. 16, theuser can designate the operation of merging a plurality of print jobsand executing them as one print job. Like “preview” and “change printsettings”, this operation is based on a job for which “store” isdesignated as an output destination in the property of the printerdriver shown in FIG. 9.

[0091] In merging print jobs, first of all, the user invokes the printerdriver 203 from the application 201, and selects “store” on the userinterface shown in FIG. 9. As in the above case, with this selection,the jobs are stored in the spool file 303, and the window of the spoolfile manager 304 pops up, as shown in FIG. 16. A list of spooled jobs isthen displayed on the window of the spool file manager 304. In addition,by performing similar operation from the application 201, a list of aplurality of jobs is displayed on the spool file manager 304.

[0092] In this case, if a plurality of jobs are selected and “merge” isdesignated, the setting change editor 307 stored in the external memory11 is loaded into the RAM 2, and the setting change editor 307 is givenan instruction to display process settings for the first job of a listor default process settings. As a consequence, a merge setting windowlike the one shown in FIG. 18 is displayed. Although the job settingwindow of the setting change editor 307 is used as a merge settingwindow, another module may be used.

[0093] The setting change editor 307 processes an intermediate code pagedescription file contained in the spool file 303 in accordance with thecontents of process settings contained in job setting information storedin the spool file 303, and outputs all jobs designated as merge jobs toits own client area by using the graphic engine 202, thereby performingoutput operation on the window. At this time, small previews of all theselected jobs can be displayed in the preview area shown in FIG. 18. Ingenerating a merged job, a job output setting file is generated byextending a job setting file for each single job. This job outputsetting file is also generated in performing job edition. One such afile is generated for one job, and is also generated for a merged job.

[0094] In this case, process settings for the respective jobs can bedisplayed before merging, or may be displayed after they arechanged/modified into uniform process settings for the merged job. Inthis case, the setting change editor 307 may have, on its userinterface, items which can be set, or the user interface of the printerdriver 203 may be invoked.

[0095] With regard to the merged job and the change items that have beenchanged, the changes are authenticated in accordance with anauthentication request on the setting change editor 307, and control istransferred to the spool file manager 304. With these operations, theplurality of selected jobs are displayed as one merged job on the windowof the spool file manager.

[0096] When the user is to perform printing in accordance the settingchange contents upon checking them on the previewer 306, the user issuesa print request on the spool file manager 304. The print request is sentto the graphic engine 202 and is sent to the printer driver 203 throughthe dispatcher 301, thereby executing printing.

[0097] The structure of the printer 1500 according to this embodimentwhich is designed to print on the basis of a printer control commandinput from the printer driver 203 through the system spooler 204 will bedescribed next.

[0098]FIG. 4 is a sectional view showing the structure of the printeraccording to this embodiment. As an example of the printer 1500, a colorlaser printer having a 2 sided printing function will be describedbelow.

[0099] As shown in FIG. 4, this printer forms an electrostatic latentimage by scanning a photosensitive drum 415, via a polygon mirror, witha laser beam modulated in accordance with image data of each colorobtained on the basis of print data input from the host computer 3000.The printer then obtains a visible image by toner-developing thiselectrostatic latent image, and superposes/transfers such visible imagesof all the colors onto an intermediate transfer member 409, therebyforming a color visible image. Furthermore, the printer transfers thiscolor visible image onto a transfer material 402, and fixes the colorvisible image on the transfer material 402.

[0100] An image forming unit which performs the above control operationis comprised of a drum unit 413 having the photosensitive drum 415, aprimary charging unit having a contact charge roller 417, a cleaningunit, a developing unit, the intermediate transfer member 409, a paperfeed unit including a paper cassette 401, rollers 403, 404, 405, 407,and the like, and a transfer unit/fixing unit 425 including a transferroller 410.

[0101] The drum unit 413 is integrally constituted by the photosensitivedrum (photosensitive member) 415 and a cleaner container 414 having acleaning mechanism also serving as a holder for the photosensitive drum415. The drum unit 413 is detachably supported on the printer body anddesigned to be easily replaced as a unit in accordance with the servicelife of the photosensitive drum 415. The photosensitive drum 415 isformed by coating the outer surface of an aluminum cylinder with anorganic photoconductive layer and rotatably supported by the cleanercontainer 414. The photosensitive drum 415 is rotated by driving forcetransferred from a driving motor (not shown). The driving motor rotatesthe photosensitive drum 415 counterclockwise in accordance with imageforming operation. An electrostatic latent image is formed byselectively exposing the surface of the photosensitive drum 415.

[0102] In a scanner unit 430, a modulated laser beam is reflected by thepolygon mirror 431 which is rotated by a motor 431 a in synchronism witha horizontal sync signal of an image signal. The photosensitive drum 415is then irradiated with this laser beam via a lens 432 and reflectingmirror 433.

[0103] In order to visualize the above electrostatic latent image, thedeveloping unit includes three color developer units 420Y, 420M, and420C for respectively developing yellow (Y), magenta (M), and cyan (C)and one black developer unit 421B for developing black (B). The colordeveloper units 420Y, 420M, and 420C and black developer unit 421Brespectively have sleeves 420YS, 420MS, 420CS, and 421BS, and coatingblades 420YB, 420MB, 420CB, and 421BB which are respectively in tightcontact with the outer surfaces of the sleeves 420YS, 420MS, 420CS, and421BS. The three color developer units 420Y, 420M, and 420C respectivelyhave coating rollers 420YR, 420MR, and 420CR.

[0104] The black developer unit 421B is detachably mounted on theprinter body, whereas the color developer units 420Y, 420M, and 420C aredetachably mounted on a developing rotary member 423 which rotates abouta rotating shaft 422.

[0105] The sleeve 421BS of the black developer unit 421B is spaced apartfrom the photosensitive drum 415 by, for example, a small distance ofabout 300 μm. The black developer unit 421B feeds toner with a feedmember incorporated in the unit, and charges the toner with frictionalelectrification to coat the outer surface of the sleeve 421BS, whichrotates clockwise, with the toner by using the coating blade 421BB. Theelectrostatic latent image on the photosensitive drum 415 is developedby applying a developing bias to the sleeve 421BS to form a visibleblack toner image on the photosensitive drum 415.

[0106] In image forming operation, the three color developer units 420Y,420M, and 420C rotate upon rotation of the developing rotary member 423,and the sleeves 420YS, 420MS, and 420CS face the photosensitive drum 415at a small distance of 300 μm. With this operation, the color developerunits 420Y, 420M, and 420C stop at developing positions opposing thephotosensitive drum 415 to form visible images on the photosensitivedrum 415.

[0107] In forming a color image, every time the intermediate transfermember 409 makes one rotation, the developing rotary member 423 rotates,and developing steps are performed in the order of the color developerunits 420Y, 420M, and 420C and black developer unit 421B. When theintermediate transfer member 409 makes four rotations, visible yellow,magenta, cyan, and black toner images are sequentially formed. As aconsequence, a full-color visible image is formed on the intermediatetransfer member 409.

[0108] The intermediate transfer member 409 is designed to come intocontact with the photosensitive drum 415 and rotate upon rotation of thephotosensitive drum 415. In forming a color image, the intermediatetransfer member 409 rotates clockwise to undergo superposition/transferof a visible image from the photosensitive drum 415 four times. In imageforming operation, the transfer roller 410 (to be described later) comesinto contact with the intermediate transfer member 409 to hold/conveythe transfer material 402 so as to simultaneously superpose/transfer thecolor visible images, formed on the intermediate transfer member 409,onto the transfer material 402. A TOP sensor 409 a, RS sensor 409 b, anddensity sensor 409 c are arranged around the outer surface of theintermediate transfer member 409. The TOP and RS sensors 409 a and 409 bdetect the position of the intermediate transfer member 409 in therotating direction. The density sensor 409C detects the density of eachtoner image transferred onto the intermediate transfer member 409.

[0109] The transfer roller 410 includes a transfer charger which issupported such that it can come into contact with and move away from thephoto sensitive drum 415. The transfer roller 410 is formed by windingan intermediate-resistance foamed elastic member around a metal shaft.While color visible images are superposed/transferred onto theintermediate transfer member 409, the transfer roller 410 is locatedbelow to be separate from the intermediate transfer member 409 asindicated by the solid line in FIG. 4 so as not to disturb the colorvisible images. After four color visible images are formed on theintermediate transfer member 409, the transfer roller 410 is locatedabove as indicated by the dotted line in FIG. 4 by a cam member (notshown) in accordance with the timing of transfer of the color visibleimages onto the transfer material 402. With this operation, the transferroller 410 comes into tight contact with the intermediate transfermember 409 through the transfer material 402 with a predeterminedpressing force, and a bias voltage is applied, thereby transferring thecolor visible image, formed on the intermediate transfer member 409,onto the transfer material 402.

[0110] The fixing unit 425 fixes the transferred color visible imagewhile the transfer material 402 is conveyed, and includes a fixingroller 426 for heating the transfer material 402 and a press roller 427for bringing the transfer material 402 into tight contact with thefixing roller 426. The fixing roller 426 and press roller 427 havehollow structures and incorporate heaters 428 and 429, respectively. Thetransfer material 402 holding the color visible image is heated andpressed while conveyed by the fixing roller 426 and press roller 427,thereby fixing the toner on the surface.

[0111] After the visible image is fixed, the transfer material 402 isdischarged to a paper discharge unit 437 by paper discharge rollers 434,435, and 436, and the image forming operation is ended.

[0112] The cleaning unit cleans residual toner on the photosensitivedrum 415 and intermediate transfer member 409. Waste toner that is lefton the photosensitive drum 415 after visible toner images formed on thephotosensitive drum 415 are transferred onto the intermediate transfermember 409 and waste toner that is left on the intermediate transfermember 409 after four color visible images formed on the intermediatetransfer member 409 are transferred onto the transfer material 402 arestored in the cleaner container 414.

[0113] The transfer material (printing sheet) 402 used for printing ispicked up from the paper feed tray 401 by the feed roller 403 andconveyed while clamped between the intermediate transfer member 409 andthe transfer roller 410. As a consequence, color toner images areprinted on the transfer material 402. The toner images are fixed whenthe transfer material 402 passes through the fixing unit 425. In 1 sidedprinting, a guide 438 forms a convey path to guide a printing sheet tothe paper discharge unit 437 located above. In 2 sided printing, theguide 438 forms a path to guide a printing sheet to a 2 sided unitlocated below.

[0114] The printing sheet guided to the 2 sided unit is temporarilyconveyed to a portion (the convey path indicated by the chaindouble-dashed line) below the paper feed tray 401 and then conveyed inthe opposite direction to be sent to a 2 sided tray 439. On the 2 sidedtray 439, the sheet is turned over and reversed in the convey directionwith respect to the state of the sheet on the paper feed tray 401. Bytransferring and fixing toner images again in this state, 2 sidedprinting can be done.

[0115] A generation process in the spooler 302 will be described below,in which the spooler 302 receives a print request from the application201 through the graphic engine 202 and dispatcher 301, analyzes theprint request, and converts the request into intermediate codes on apage basis, thereby generating a spool file.

[0116]FIG. 5 is a flow chart showing the generation process in thespooler 302. In step S501, the spooler 302 receives a print request fromthe application 201 through the graphic engine 202 and dispatcher 301.The application 201 displays a dialog like the one shown in FIG. 8 whichis used to input print settings. Print settings input through thisdialog are transferred to the spooler 302 through the printer driver203. The setting input dialog shown in FIG. 8 includes a setting itemfor determining the number of logical pages to be laid out in onephysical page denoted by reference numeral 801 and the like.

[0117] In step S502, the spooler 302 checks whether the received printrequest is a job start request. If the spooler 302 determines that therequest is a job start request, the flow advances to step S503, in whichthe spooler 302 generates the spool file 303 for temporarily storingintermediate data. In step S504, the spooler 302 notifies the spool filemanager 304 of the progress of print processing. In step S505, the pagecounter of the spooler 302 is initialized to “1”. In this case, thespool file manager 304 reads, from the spool file 303, job settinginformation, process settings, and the like for the job for whichprinting is started, and stores the read information.

[0118] If it is determined in step S502 that the request is not a jobstart request, the flow advances to step S506, in which the spooler 302checks whether the received request is a job end request. If it isdetermined that the request is not a job end request, the flow advancesto step S507 to check whether the request is a page break request. If itis determined in step S507 that the request is a page break request, theflow advances to step S508 to notify the spool file manager 304 of theprogress of print processing. The page counter is then incremented, thepage description file storing an intermediate code is closed, and thenext page description file is generated.

[0119] If it is determined in step S507 that the received print requestis not a page break request, the flow advances to step S509, in whichthe spooler 302 makes a preparation for writing of an intermediate codein the page description file.

[0120] In step S510, to store the print request in the spool file 303,the spooler 302 converts the DDI function of the print request into anintermediate code. In step S511, the spooler 302 writes the printrequest (intermediate code), which is converted into the form that canbe stored in step S510, in the page description file of the spool file303. The flow then returns to step S501 to receive a print request fromthe application 201 again.

[0121] This series of operations from step S501 to step S511 iscontinued until a job end request (End Doc) is received from theapplication 201. At the same time, the spooler 302 acquires informationsuch as process settings stored in the DEVMODE structure from theprinter driver 203, and stores the information as a job setting file inthe spool file 303. If it is determined in step S506 that the printrequest from the application 201 is a job end request, since all printrequests from the application are completed, the flow advances to stepS512 to notify the spool file manager 304 of the progress of printprocessing, thereby terminating the processing.

[0122] A process will be described next, in which the spool file manager304 receives a progress notification from the spooler 302 or despooler305 and controls the generation process executed by the spooler 302 andthe print data generation process executed by the despooler 305 (to bedescribed later).

[0123]FIG. 6 is a flow chart showing control operation performed by thespool file manager 304. In step S601, the spool file manager 304receives a progress notification about print processing from the spooler302 or despooler 305. In step S602, the spool file manager 304 checkswhether the progress notification is the print start notification madeby the spooler 302 in step S504 in FIG. 5. If it is determined that thenotification is the print start notification from the spooler 302, theflow advances to step S603 to read print process settings from the spoolfile 303 and start job management.

[0124] If it is determined in step S602 that the notification is not theprint start notification from the spooler 302, the flow advances to stepS604, in which the spool file manager 304 checks whether the progressnotification is the print end (page break) notification about 1 logicalpage which is made by the spooler 302 in step S508 in FIG. 5. If it isdetermined that the notification is the print end notification about 1logical page, the flow advances to step S605 to store logical pageinformation about this logical page. In step S606, it is checked whetherprinting of 1 physical page on n logical pages after spooling can bestarted. If YES in step S606, the flow advances to step S607 todetermine a physical page number from the number of logical pagesallocated to 1 physical page to be printed.

[0125] This physical page calculation is performed as follows. If, forexample, process settings are made to arrange 4 logical pages in 1physical page as shown in FIG. 8, the first physical page can be printedwhen the fourth logical page is spooled. As a consequence, the firstphysical page is calculated. Likewise, the second physical page can beprinted when the eighth logical page is spooled.

[0126] Note that even if the sum total of logical pages is not amultiple of the number of logical pages arranged in 1 physical page, thenumber of logical pages to be arranged in 1 physical page can bedetermined by making a spool end notification in step S512 in FIG. 5.

[0127] In step S608, pieces of information such as logical page numbersconstituting each physical page that can be printed, and each physicalpage number are stored in the form shown in FIG. 10 in a job outputsetting file (a file containing physical page information), and thedespooler 305 is notified that physical page information correspondingto one physical page is added. The flow then returns to step S601 towait for the next notification. Note that this job output setting filewill be further described with reference to FIG. 10.

[0128] As described above, in this embodiment, even if all print jobsare not completely spooled when 1-page print data, i.e., logical pagesconstituting 1 physical page, are spooled, print processing can beperformed.

[0129] If it is determined in step S604 that the progress notificationis not a print end notification about 1 physical page from the spooler302, the flow advances to step S609, in which the spool file manager 304checks whether the notification is the job end notification made by thespooler 302 in step S512 in FIG. 5. If it is determined that thenotification is the job end notification, the flow advances to stepS606. If it is determined that the notification is not the job endnotification, the flow advances to step S610, in which the spool filemanager 304 checks whether the received notification is a print endnotification about 1 physical page from the despooler 305. If it isdetermined that the notification is a print end notification about 1physical page, the flow advances to step S611 to check whether all pagesbased on process settings are printed. If YES in step S611, the flowadvances to step S612 to notify the despooler 305 of the end ofprinting. If it is determined in step S611 that not all pages based onthe process settings are printed, the flow advances to step S606.

[0130] Note that the despooler 305 in this embodiment operates on theassumption that print processing is performed on a physical page basis.In step S608, information necessary for print processing for 1 physicalpage is sequentially stored in a file to be reused. If, however, suchinformation need not be reused, information may be sequentiallyoverwritten on a physical page basis by using a high-speed medium suchas a shared memory, thus increasing the speed and saving the resources.Assume that the progress of processing in the despooler 305 is fasterthan that in the spooler 302, or the despooler 305 is activated afterall pages are spooled. In this case, the number of times of notificationcan be saved by notifying that a plurality of physical pages or allphysical pages can be printed, in accordance with the progress on thedespooler 305 side, instead of notifying, on a physical page, in stepS608 that printing can be performed.

[0131] If it is determined in step S610 that the notification is not theprint end notification about 1 physical page from the despooler 305, theflow advances to step S613, in which the spool file manager 304 checkswhether the notification is a print end notification from the despooler305. If it is determined that the notification is a print endnotification from the despooler 305, the flow advances to step S614, inwhich the spool file manager 304 deletes the corresponding pagedescription file in the spool file 303 and terminates this processing.If it is determined in step S613 that the notification is not a printend notification from the despooler 305, the flow advances step S615 toperform other normal processing (e.g., error processing) and wait forthe next notification.

[0132] A print data generation process will be described next, in whichthe despooler 305 reads out necessary information (a page descriptionfile, job setting file, and the like) from the spool file 303 inaccordance with a print request from the spool file manager 304, andgenerates print data. Note that the method of transferring generatedprint data to the printer 1500 has already been described with referenceto FIG. 3.

[0133]FIG. 7 is a flow chart showing the print data generation processin the despooler 305. In step S701, the despooler 305 receives anotification from the spool file manager 304 described above. In stepS702, the despooler 305 checks whether the input notification is a jobend notification. If it is determined that the notification is a job endnotification, the flow advances to step S703 to set an end flag. Theflow then advances to step S705.

[0134] If it is determined in step S702 that the notification is not ajob end notification, the flow advances to step S704 to check whetherthe notification is the print start request for 1 physical page that isnotified in step S608 in FIG. 6. If it is determined that thenotification is not the print start request, the flow advances to stepS710 to perform other processing (error processing). The flow thenreturns to step S701 to wait for the next notification. If it isdetermined in step S704 that the notification is the print start requestfor 1 physical page, the flow advances to step S705, in which thedespooler 305 stores the ID of a physical page that can be printed andis notified. In step S706, the despooler 305 checks whether printprocessing for all pages corresponding to the physical page IDs storedin step S705 is completed. If YES in step S706, the flow advances tostep S707 to check whether an end flag is set instep S703 describedabove. If it is determined that an end flag is set, it is determinedthat the job is ended. The despooler 305 then notifies the spool filemanager 304 of the end of processing, and terminates this processing. Ifit is determined in step S707 that an end flag is not set, the flowreturns to step S701 to wait for the next notification.

[0135] If it is determined in step S706 that physical pages that can beprinted are left, the flow advances to step S708, in which the despooler305 sequentially reads out physical page IDs which are not processedfrom the stored physical page IDs. The despooler 305 then readsinformation necessary for the generation of print data of physical pagescorresponding to the read physical page IDs, and performs printprocessing. In this print processing, the despooler 305 converts eachprint request instruction stored in the spool file 303 into a form (GDIfunction) that can be recognized by the graphic engine 202, andtransfers it.

[0136] When process settings are made to lay out a plurality of logicalpages in 1 physical page (to be referred to as “N page printing”hereinafter), conversion is performed in consideration a reduced pagelayout in step S708. When necessary print processing is completed, thedespooler 305 notifies the spool file manager 304 of the end ofgeneration of print data corresponding to 1 physical page in step S709.The flow returns to step S706 again to repeat print processing for allthe physical page IDs that can be printed and are stored in step S705.

[0137] When the dispatcher 301, spooler 302, spool file manager 304, anddespooler 305 perform print processing in the above manner, theapplication 201 is released from the print processing at the timing whenthe spooler 302 generates intermediate codes and stores them in thespool file 303. This makes it possible to shorten the processing time ascompared with conventional print processing in which an intermediatecode is directly output to the printer driver 203.

[0138] In addition, since intermediate codes are temporarily stored, inthe spool file 303, as an intermediate file (a page description file andjob setting file) based on the print settings in the printer driver, aprint preview of data to be actually printed can be recognized by theuser and print jobs generated by a plurality of applications 201 can bemerged or rearranged. In addition, the user can change print settingswithout printing out by activating the application 201 again.

[0139] In print processing performed by using the spooler 302, thedespooler 305 generates a job output setting file when a print requestis issued to the graphic engine 202. When preview operation, jobmerging, or the like is performed, a job output setting file isgenerated. This job output setting file is equivalent to a job settingfile in the case of a single job, and is generated on the basis ofpieces of job setting information in the case of job merging.

[0140] A job output setting file in this embodiment will be describedbelow.

[0141]FIG. 10 shows an example of a job output setting file in thisembodiment. This job output setting file stores information that forms aphysical page that can be printed and is generated by the spool filemanager 304 in step S608 in FIG. 6. Referring to FIG. 10, an ID foridentifying a job is stored in a field 1001. This ID can be stored inthe form of a file name in which this information is stored or the nameof a shared memory. Job setting information is stored in a field 1002.This job setting information includes information that can only be setin a one-to-one relationship with a job, e.g., designation of astructure necessary for the start of printing of the job with respect tothe graphic engine 202, designation of N page printing, designation ofadditional printing of a page frame or the like, designation of thenumber of copies, designation of finishing such as“staple”. In this jobsetting information, information is stored as required in accordancewith functions for the job.

[0142] The number of physical pages of the job is stored in a field1003. This field indicates that physical page information is stored inthe subsequent fields by an amount corresponding to this number. Sincethis embodiment uses the scheme of notifying the number of physicalpages that can be printed, the embodiment can operate without thisfield. After this field, physical page information is stored from afield 1004 to the last field by an amount corresponding to the numberstored in the field 1003. This physical page information will be furtherdescribed later with reference to FIG. 12.

[0143]FIG. 11 shows an example of the job setting information in thefield 1002 in FIG. 10. Referring to FIG. 11, the total number ofphysical pages is stored in a field 1101, and the total number oflogical pages is stored in a field 1102. For example, the information inthe fields 1101 and 1102 can be added to print data to print the numberof pages as additional information. During printing, provisional valuesare set in the two fields or the spool file manager 304 postponesgenerating information about printable physical pages until the end ofprinting. Copy information for designating the number of sets of copiesto be printed by the print job is stored in a field 1103. If theinformation in the field 1103 indicates that a plurality of sets ofcopies are printed, information indicating whether printing is performedon a set basis is stored in a field 1104. Finishing information such as“staple”, “punch”, or “Z fold” is stored in a field 1105. Thisinformation is designated when a finisher is prepared inside or outsidethe printer body. An ornament such as a page frame, additionalinformation such as a date, and information such as a user name, thenumber of pages, or watermark printing which is to be added to a job, isstored in a field 1106. Note that as the number of functions increases,the number of fields contained in this job setting informationincreases. For example, in the case of 2 sided printing, a field forstoring designation of 2 sided printing is added.

[0144]FIG. 12 shows an example of the physical page information in thefield 1004 shown in FIG. 10. Referring to FIG. 12, a physical pagenumber is stored in a first field 1201, in which a value used formanagement of a printing order or additionally printing the physicalpage number is stored. Physical page setting information is stored in afield 1202. If a layout or color/monochrome printing can be designatedfor each physical page, a layout setting or color/monochrome setting isstored in this field. The number of logical pages to be allocated to aphysical page is stored in a field 1203. If four pages are to beallocated to one physical page, an ID indicating “four” or four-pageprinting is stored in this field. In a field 1204 and the subsequentfields, information of logical pages is stored by an amountcorresponding to the number designated in the field 1203.

[0145] Note that the number of actual page data may be smaller than thenumber of pages designated in the field 1203 depending on the number ofpages printed from the application 201. In this case, special dataindicating an empty page is stored as logical page information.

[0146]FIG. 13 shows an example of the physical page setting informationin the field 1203 shown in FIG. 12. Referring to FIG. 13, the page orderof logical pages on a physical page is stored in a field 1301, in whichdesignation of the page order (from upper left to upper right, fromupper left to bottom, or the like) of logical pages on a physical pagein N page printing is stored. Depending on the system, the order oflogical page information in the field 1204 and the subsequent fields maybe set in accordance with the page order instead of the page numberorder to substitute for the setting in the field 1301. Informationindicating the upper or lower surface in 2 sided printing is stored in afield 1302. For example, this information is used to align bindingmargins on the upper and lower surfaces. Designation of a color page ormonochrome page is stored in a field 1303. When the printer hasmonochrome and color modes, this information is used to print a colorpage in the color mode and a monochrome page in the monochrome mode.With this information, a color printer can change processing for eachpage in the automatic color mode. That is, transfer control for a colorpage can be done by rotating the intermediate transfer member(intermediate transfer drum or intermediate transfer belt) or a transfermember (transfer drum or transfer belt) by the number of rotationscorresponding to the number of device colors, e.g., four rotations forYMCK, whereas transfer control for a monochrome pate can be done byrotating it by one rotation for black alone. Additional printinformation is stored in a field 1304. This information is used to printadditional information such as the number of pages and a date. For thisphysical page setting information, fields are added in accordance withthe functions of a system.

[0147]FIG. 14 shows an example of the logical page information in thefield 1204 shown in FIG. 12. Referring to FIG. 14, the ID of a logicalpage is stored in a field 1401. This ID is used to refer to theintermediate code of a page description file corresponding to thelogical page from the spool file 303. This ID may be a file or memorypointer or may include an intermediate code constituting the logicalpage as long as the use of the ID allows access to the intermediatecode. A logical page number is stored in a field 1402, which is usedwhen the logical page number is printed as additional information orused for auxiliary information for the logical page ID. Formatinformation is stored in a field 1403, in which various setting itemsthat can be designated on a logical page basis are stored. For example,additional print information such as a page frame and information ofvarious settings designated on a logical page basis, e.g., reductionratio, are stored. Attribute information about a logical page, e.g.,color/monochrome information on a logical page basis, can also bestored, as needed. In contrast to this, the field 1403 is not requiredin a system which need not change settings on a logical page basis orhave attribute information on a logical page basis.

[0148] A job output setting file is formed in the above manner. A jobsetting file has almost the same arrangement, which has, as a job, aprint style (1 sided printing, 2 sided printing, orbookbinding/printing), print layout (Nup or poster printing), additionalinformation (watermark, date, or user name), the number of copies, andpaper size information, and is constituted by information indicating thepage order of logical pages, information indicating the upper or lowersurface of a printing sheet in 2 sided printing, information indicatingthe color mode or the like, and the like for each physical page.

[0149] A process for implementing a job setting change function by thesetting change editor 307 shown in FIG. 3 will be described below, inaddition to the extended system described so far. According to thisembodiment, in the case of a single job, the setting contents of the jobare contained in a job setting file. In the case of a merged job, thecontents are contained in the job output setting file shown in FIG. 10,which is independent of the spool file 303 storing intermediate codes.For this reason, settings for the job can be changed by remaking the joboutput setting file. The setting change editor 307 remakes the joboutput setting file or rewrites part of the file by itself or incooperation with the spool file manager 304, thereby implementing thejob setting change function.

[0150]FIG. 15 is a flow chart showing the job setting change processexecuted by the setting change editor 307. In step S1501, the settingchange editor 307 reads a job setting file or job output setting file.The job output setting file is the same file as that read by thepreviewer 306 and despooler 305. In step S1502, the contents of the readfile are displayed to the user. In step S1503, an interaction with theuser is conducted on a user interface like the one shown in FIG. 18 tochange the setting contents by the above menu designation and the like.This step may be performed in a batch form in which a change is made inaccordance with the setting change contents written in a file or thelike instead of an interactive form.

[0151] In step S1504, the setting change editor 307 compares the settingcontents read first in step S1501 with the current setting contents tocheck whether the setting contents are changed. If the setting contentsare changed, the flow advances to step S1505 to generate a new joboutput setting file and notify the spool file manager 304 that thesetting contents are changed. The processing is then terminated. If itis determined in step S1504 that the setting contents are not changed,the setting change editor 307 notifies the spool file manager 304 thatthe setting contents are not changed. The processing is then terminated.

[0152] In this manner, a new job output setting file is generated. Ifthe user selects the “OK” button on the user interface window shown inFIG. 18, the new job output setting file is validated, and the old joboutput setting file is deleted. If setting contents are changed not by ajob output setting file but by a job setting file in the case of asingle job, the old job output setting file is not deleted but stored.In addition, if the user selects “restore defaults” button on the userinterface window shown in FIG. 18, the old job output setting file isvalidated, and the corresponding data is reflected in the display.

[0153] In this embodiment, the setting change editor 307 is described asa discrete module. However, the setting change editor 307 may be part ofthe user interface of the spool file manager 304. Alternatively, thesetting change editor 307 may not actually write any change contents ina job output setting file, but only the setting change contents may benotified to the spool file manager 304 to actually change the job outputsetting file on the spool file manager 304 side.

[0154] An extension to be made in the conventional extended system,which is designed to merge a plurality of print jobs to print them asone print job, to make a despool preview of a merged job will bedescribed next.

[0155] In general, the spool file 303 in the intermediate code form isgenerated on a job basis. In the case of a single job, processing isperformed by sequentially reading the intermediate codes of each logicalpage in a target job file. Therefore, the logical page ID in the field1401 can be realized by a relative or absolute offset indicating thelocation of each logical page in the file. In the case of a merged job,the spool file 303 and page information belonging to the job must bespecified from the job ID in the field 1401. This embodiment uses ascheme of specifying the spool file 303 by adding an ID for identifyingthe spool file 303 to a logical page ID. In this case, it suffices ifonly the information in the field 1401 is mainly changed. This isbecause, if the spool file 303 can be identified, a page portion can beread by the same logic as that for a single job. In addition, if thespool file 303 is stored in a different file form for each logical page,the file name of each logical page may be set as the logical page ID inthe field 1401.

[0156] Processing will be described next, in which the surface of aprinting sheet is segmented into a plurality of areas as in the case ofa four-postcard sheet on which four postcards are arranged in a 2×2matrix, and the layout of print data in the respective segmented areasis controlled.

[0157]FIG. 19 shows the layouts of the upper and lower surfaces of afour-postcard sheet in this embodiment. As shown in FIG. 19, afour-postcard sheet has four postcards arranged in a 2×2 matrix. If theaddresses of Mr. A, Mr. B, Mr. C, and Mr. D are respectively printed onthe upper left portion, upper right portion, lower left portion, andlower right portion of the upper surface of the sheet, the text surfacesfor Mr. B, Mr. A, Mr. D, and Mr. C are respectively arranged on theupper left portion, upper right portion, lower left portion, and lowerright portion of the lower surface. That is, the addresses and textsmust be laterally reversed on the upper and lower surfaces of the sheet.

[0158] When, therefore, the application 201 is to use a four-postcardsheet in sequentially printing address surface 1, text surface 1,address surface 2, text surface 2, . . . in the order named, data aboutthe first four persons are printed on the address surfaces,respectively, and then the lower-surface data of the four persons areprinted. In this case, the page order must be changed to laterallyreverse the layout on the upper surface with respect to the layout onthe lower surface. Even when data are to be separately printed on theupper or lower surfaces by 1 sided printing, the page order must bechanged to match a set of data on the upper surface with a set of dataon the lower surface.

[0159]FIG. 20 is a flow chart showing processing for changing the pageorder on the upper surface with respect to the lower surface. Thisprocessing corresponds to an imposition process in the print processingin step S708 in FIG. 7. That is, this processing is based on theassumption that processing for checking whether data corresponding tothe number of pages required for printing are prepared and the like havebeen done.

[0160] In step S2001, imposition information is acquired from the abovejob output setting file. Assume that in the case of a four-postcardsheet, a setting for a 2×2 arrangement, a setting for inhibitingenlargement/reduction of input data, and the like have been made. Instep S2002, it is checked whether the surface to be subjected to animposition process is the upper or lower surface. The processing forchecking whether the surface is the upper or lower surface will befurther described later with reference to FIG. 29. If it is determinedthat the surface is the upper surface, the flow advances to step S2003to set a page order for the upper surface. If it is determined in stepS2002 that the surface is the lower surface, the flow advances to stepS2004 to set a page order for the lower surface. More specifically,control is performed to laterally reverse the page orders on the upperand lower surfaces with respect to each other. If, for example, data onthe upper surface are arranged from upper left to upper right end, andthen arranged from the left end to the right end on the lower level,data on the lower surface are arranged from upper right to upper leftend, and then arranged from the right end to the left end on the lowerlevel. In step S2005, an imposition process is performed in accordancewith the imposition order set in step S2003 or S2004 depending onwhether the upper or lower surface is determined. This processing isthen terminated.

[0161] Note that the above page orders may be fixed in the system or theuser may be allowed to designate a page order on one surface. Thisprocessing method can be applied to both 2 sided printing and 1 sidedprinting.

[0162] In the case of 2 sided printing, since data on the upper andlower surfaces are simultaneously processed, the data on the upper andlower surfaces can be automatically processed without any designationfrom the user. In the case of 1 sided printing, however, the user needsto designate with respect to the system that the current printing shouldbe done on the upper or lower surface. This may be designated by, forexample, a method of designating the upper or lower surface by GUIcontrol using, for example, a simple check box. For example, it sufficesto use a GUI like the one that allows the user to designate afour-postcard sheet with a “page layout” 801 in FIG. 8, and the upper orlower surface with “page order”.

[0163] A specific GUI for selecting/designating a four-postcard sheetand the manner in which designation of “page order” and other printsettings is inhibited when “four-postcard sheet” is selected with “mediatype” will be described below.

[0164]FIG. 26 shows an example of a property dialog GUI (Graphic UserInterface) for making print settings in a printer driver to set afour-postcard sheet. In this example, output operation for afour-postcard sheet can be designated by designating a four-postcardsheet in “output paper size” as indicated by “2601”. In addition, inthis example, since “original” is a postcard, printing is performed uponassignment of four pages to one sheet. A UI driver for controlling theGUI automatically changes the current page layout to page layout “4pages per sheet” as indicated by “2602” upon setting of an output papersheet.

[0165] If a four-postcard sheet is selected as an output paper sheet,the page layout is fixed to “4 pages per sheet”. For this reason, thepull-down menu (also called combo box) of “page layout” indicated by“2602” is grayed out to inhibit the operator from selection/designation.In addition, since “page order” can be selected/designated by theoperator, the pull-down menu of “page order” is so displayed by the UIdriver as to be selected. “Page order” allows the operator to select oneof “from upper left to upper right”, “from upper left to bottom”, “fromupper right to bottom”, and “from upper right to upper left”. Inaddition, “finishing sheet” on the property dialog window is sodisplayed/controlled by the UI driver as to allow the operator toselect/designate “2 sided printing” or “1 sided printing”. Othersettings, e.g., finishing setting, are so displayed/controlled as toinhibit the operator from selection. Furthermore, “sheet to be fed”,“designation of paper feed method”, and “designation of paper feed unit”are all grayed out by the UI driver to inhibit the operator to select.

[0166]FIG. 27 shows another specific example of the GUI for designatinga four-postcard sheet. This may be a dialog window for print settings inthe printer driver 203 or a dialog window used to make print settingsfrom a menu provided by the application 201.

[0167] In this system, output paper is “postcard”, and “postcard” or“four-postcard sheet” is selected as a postcard type. When a postcard isselected with an output paper setting 2701 in FIG. 27, a radio button2801 of the GUI which is used to select a postcard type in FIG. 28 isactivated to allow the user to select a general postcard or a papersheet having a plurality of surface areas printed simultaneously. In thesystem according to this embodiment, the use of a sheet having foursurface areas on which data can be printed is assumed. In this example,therefore, the user selects either “postcard” or “four-postcard sheet”.Obviously, however, the system can be extended to use, for example,sheets having two, six, and eight surface areas. In the example,classifications are set in different tabs. However, they may be set inthe same tab.

[0168] The processing of determining the upper or lower surface in stepS2002 in FIG. 20 described above will be described in detail next. Forexample, the printer driver communicates with an application through anenhanced API to determine whether to designate the form of outputtingall lower-surface pages after all address pages or the form ofoutputting the first address page and the first lower-surface page, . .. , and the Nth address page and the Nth lower-surface page.Alternatively, the printer driver instructs the application to outputfour lower-surface logical pages after four upper-surface logical pages.

[0169]FIG. 29 is a flow chart showing processing based on whichdetermination on an upper or lower surface is performed by the despooler305. Assume that in this example, upper-surface data as pages arearranged on one physical page by the number of pages to be laid out,lower-surface data are then arranged on one physical page by the numberof pages to be laid out, and this set of operations is repeated.

[0170] In step S2901, the despooler 305 initializes a counter i to 1. Instep S2902, the despooler 305 extracts one page from a page data listand associates it with the counter i. In step S2903, the despooler 305checks whether a page can be extracted in step S2902 or cannot beextracted because processing for all pages to be processed is completed.If there is no page to be processed, the flow advances to step S2904. Ifthere is a page to be processed, the flow advances to step S2907.

[0171] In step S2904, the despooler 305 checks whether the counter i isan odd or even number. If this value is an odd number, it indicates thatthe number of pages on the upper surface does not match the number ofpages on the lower surface. Therefore, an error is determined. If thecounter i is an even number, the flow advances to step S2905 todetermine the upper or lower surface in accordance with the countervalue associated in step S2902. This processing is performed when thenumber of data is an odd sum, e.g., data corresponding to six or fourpages, in spite of the fact that when an imposition process is performedfor four surface areas indicated by N=4, a total of eight pages on theupper and lower surfaces are required. In the case of six pages, i=6,and it is determined that the 1st to (i/2)th pages, i.e., the 1st to 3rdpages, are upper-surface pages, and the (i/2+1)th to ith pages, i.e.,the 4th to 6th pages, are lower-surface pages. In this stage, since allthe data are completely allocated to the upper and lower surfaces of onepaper sheet, the flow advances to the processing shown in FIG. 20,thereby performing an imposition process for the upper- andlower-surface pages.

[0172] If it is determined in step S2903 that there is a page to beprocessed, the flow advances to step S2907 to compare the counter i withthe number of pages impositioned. If N =4, it is checked whetherprocessing for eight (=2*N) pages, which is the total number of pages onthe upper and lower surfaces, is completed. If processing for 2N pagesis completed, the flow advances to step S2908 to allocate the 1st to Nthpages as upper-surface pages, and the (N+1)th to 2Nth pages aslower-surface pages. In this step, the data corresponding to all theupper- and lower-surface pages on one sheet are completely allocated,the flow advances to step S2909 to perform an imposition process in thesame manner as in step S2905. The flow then returns to step S2901 toprocess the next sheet. The above processing is then repeated.

[0173] If it is determined in step S2907 that processing for 2N pages,i.e., eight pages, is not completed, since page allocation for one sheetis not completed, the flow advances to step S2910 to increment thecounter i. The flow then returns to step S2902 to process the next page.

[0174]FIG. 30 is a flow chart showing the processing of allocatingupper- and lower-surface pages when the processing order of originalpage data is the first upper-surface page, the first lower-surface page,the second upper-surface page, the second lower-surface page, . . . Instep S3001, the counter i is initialized. In step S3002, page data asthe next determination target is extracted, and it is checked whetherthe counter i is an even or odd number. If it is determined that thecounter i is an odd number, the flow advances to step S3003 to determinethat the corresponding page is an upper-surface page. If it isdetermined that the counter i is an even number, the flow advances tostep S3004 to determine that the corresponding page is a lower-surfacepage. In either case, the flow advances to step S3005 to increment thecounter i.

[0175] The flow advances to step S3006 to check whether processing for2N pages, i.e., the value of the counter i and the total number ofupper- and lower-surface pages, is completed. If it is determined thatprocessing for one sheet is completed, the flow advances to step S3010to perform the imposition process shown in FIG. 20. If it is determinedin step S3006 that processing for one sheet is not completed, the flowadvances to step S3007 to check whether there is any page as aprocessing target. If the next page exists, the flow returns to stepS3002 to process the next processing target page and repeat the aboveprocessing. If it is determined that no page is left, the flow advancesto step S3008 to check whether the counter i is an even number. If thecounter i is an odd number, it indicates that the number of pages on theupper surface does not match the number of pages on the lower surface,and hence an error is determined. If the counter i is an even number,the flow advances to step S3009 to perform the imposition process shownin FIG. 20.

[0176] The processing of storing physical page information in a joboutput setting file (steps S607 and S608 in FIG. 6) will be described indetail next.

[0177]FIG. 25 is a flow chart showing the processing of storing physicalpage information. In step S2501, an imposition page count N on onesurface is acquired from the spool file. In step S2502, it is checkedwhether 1 sided printing is designated. If 1 sided printing isdetermined, the flow advances to step S2503 to check whether N pages canbe printed. More specifically, it is checked whether N pages can beprinted or the remaining pages are completely spooled even through theyare less in number than N. If it is determined that N pages can beprinted or the remaining pages are completely spooled even through theyare less in number than N, the flow advances to step S2504; otherwise,the flow returns to step S601 to wait for the next input. In step S2504,N page data are stored or the remaining pages are stored as physicalpage information, and it is then notified that the physical page can beprinted.

[0178] If it is determined in step S2502 that 2 sided printing isdesignated, the flow advances to step S2505 to check whether datacorresponding to a total of 2N pages on both the surfaces can be printedor the last sheet is processed upon completion of spooling. If NO instep S2505, the flow returns to step S601. If YES in step S2505, theflow advances to step S2506 to check whether spooling is completed. IfNO in step S2506, the flow advances to step S2508. If YES in step S2506,since printing is performed on the last sheet, N is set againconsidering that half of the number of pages currently spooled is thenumber of pages impositioned per surface. The flow then advances to stepS2508.

[0179] It is checked in step S2508 whether the printing order designatedby the application is “upper surface 1, lower surface 1, upper surface2, lower surface 2, . . . ” or “upper surface 1, upper surface 2, . . ., lower surface 1, lower surface 2, . . . ”. In the former case, theflow advances to step S2509 to store all odd-numbered pages asupper-surface pages in the form of N page physical page information andnotify that printing can be performed. The flow then advances to stepS2510 to wait for a printing end notification from the despooler 305.The flow then advances to step S2511 to set N even-numbered pages inphysical page information and notify that printing can be performed.

[0180] If it is determined in step S2508 that the printing order is thatN upper-surface pages are continuously printed first, and then Nlower-surface pages are printed, the flow advances to step S2512 to setthe first N pages in physical page information. The flow then advancesto step S2513 to wait for a printing end notification from the despooler305. If a printing end notification is made, the flow advances to stepS2514 to set the remaining (N+1)th to 2Nth pages in physical pageinformation and notify the despooler 305 of the correspondinginformation.

[0181] A case where when there is a sheet is used halfway, printing isperformed on the remaining portion to save the sheet will be describednext.

[0182]FIG. 24 is a view for explaining the concept of the processing ofprinting data on the remaining portion of a sheet that is used halfway.In the case shown in FIG. 24, the upper left portion of a four-postcardsheet has already been used, but the three remaining areas are leftunused. In this case, next printing is started from the upper right tothe lower row in the order of the numbers assigned to the respectiveareas. This printing order is changed for the second and subsequentsheets such that printing is performed on all areas, because there is noneed to use sheets that are used halfway.

[0183]FIG. 23 shows a GUI for setting a used portion of the first sheet.This GUI is based on the scheme of designating a specific one of theareas of a four-postcard sheet from which printing is started. The GUIallows the user to select one of four choices with a radio button. Incontrast to this, a method of designating the number of used areas witha number, and a GUI for allowing the user to designate the number ofareas that can be used may be used. The latter method is versatileconsidering that sheets other than a four-postcard sheet, e.g.,eight-postcard sheet, will appear in the future.

[0184]FIG. 21 is a flow chart showing the processing to be performedwhen printing is continuously performed on a sheet that has been used.In step S2101, setting information is acquired from the spool file 303,and the number of pages to be impositioned on one sheet is set to N. Instep S2102, the page count is initialized to “1”. In step S2103,information associated with the remaining portion of the sheet isacquired from the setting information acquired in step S2101. In stepS2104, it is checked whether remainder count information is designated.If YES in step S2104, the flow advances to step S2106. If NO in stepS2104, the flow advances to step S2105.

[0185] In step S2105, a parameter i is initialized to “1”. In stepS2106, i is set to the remainder count (the number of printed areas +1).The flow then advances to step S2107 to perform an imposition processfor the ith page. In step S2108, the pth page data is printed inaccordance with the imposition information obtained in step S2107. Theflow then advances to step S2109 to check whether any page to be printedis left. If all pages are printed, this processing is terminated. Ifthere is any page to be printed, the flow advances to step S2110 toincrement each of the parameters i and p by one. The flow then advancesto step S2111.

[0186] In step S2111, the parameters i and N are compared with eachother to check whether an imposition process for all the areas on thesheet is completed. If it is determined that there is an area to besubjected to an imposition process, the flow returns to step S2107 toimposition the next page. If it is determined that all the areas arefilled with pages, the flow advances to step S2112 to clear thedesignated remainder count. By clearing the designated remainder count,print processing for the next and subsequent sheets is performed byusing all areas. The flow returns to step S2104 to process the nextsheet.

[0187] In the above procedure, processing for the first page is switchedto processing for the second and subsequent sheets depending on whethera remainder count setting is made or not. If, however, the first loopprocessing is specialized, the number of steps inside the loop can bedecreased. This method is therefore advantageous in terms of speed.

[0188]FIG. 22 is a flow chart showing a procedure for setting a layoutand performing security processing with respect to designation of afour-postcard sheet. In step S2201, setting information for a GUI isacquired. In step S2202, it is checked whether a four-postcard sheet isdesignated. If it is determined that a four-postcard sheet isdesignated, the flow advances to step S2203 to perform, for example,graying out to indicate that other layout designations are invalid. Inthis case, the target items correspond to, for example, Nup, bindingmargin, and zoom, although they depend on the system. That is, anysettings that influence the fixed layout of “four-postcard sheet” aretarget items.

[0189] In step S2205, security setting information is acquired. In stepS2206, it is checked whether security is provided for a four-postcardsheet. If YES in step S2206, the flow advances to step S2207 to performsecurity processing. This security processing varies depending on thesettings for system management. Assume that only a specific user ispermitted to make settings for a four-postcard sheet. In this case,security processing corresponds to the processing of displaying, to anunauthorized user, a message indicating that setting is inhibited andcanceling the setting made by the user. Assume also that an upper limitis set for each item. In this case, security processing may be performedto display a message when the upper limit of a given item is exceeded orabout to be exceeded, and to inhibit printing in some cases.

[0190] It is determined in step S2202 that a four-postcard sheet is notdesignated, the flow advances to step S2204 to perform normalprocessing.

[0191] As has been described above, according to this embodiment, when aplurality of page data are arranged and printed on one sheet or a sheetis segmented into a plurality of areas and at least one of data on thesegmented areas of the sheet differs from the remaining data,corresponding data can be printed on the upper and lower surfaces of thesheet.

[0192] In the case of 2 sided printing, whether the current printing isprinting on the upper surface or lower surface can be automaticallydetermined.

[0193] The user can designate the upper or lower surface of a sheetthrough a GUI.

[0194] The user can designate the upper or lower surface of a sheetwithout any GUI.

[0195] In making a layout that is always uniquely determined withrespect to a specific type of sheet, when the specific type of sheet isdesignated, a GUI for print settings can be controlled to inhibit theuser from making any settings that influence the layout through the GUI.

[0196] In addition, security setting processing can be performed suchthat security processing, charging, and the like are performed upondesignation of a specific type of sheet.

[0197] If a four-postcard sheet having four postcards arranged in a 2×2matrix is selected, control may be automatically performed to inhibitthe user from making any settings that influence the layout, or securityand charging settings may be automatically made.

[0198] Furthermore, it can be designated that part of a sheet hasalready been used, and the remaining portion can be reused for the nextprinting operation.

[0199] Even if a sheet is to be reused, new sheets can be used for thenext and subsequent printing operations by using all the areas of thesheets.

[0200] In the above processing, the despooler has been described asprocessing performed by the spool file manager, and hence itsdescription has ended with the description of the page layout.Processing will be described below, in which the printer driver or printtool generates print data on the basis of a document having undergonepage layout in the above manner.

[0201]FIG. 30 is a flow chart showing the processing of generating printdata by using the printer driver or print tool. In step S3101, page datato be printed is spooled. In step S3102, it is checked whether printingis completed. If NO in step S3102, since there is page data to beprocessed, the flow advances to step S3103 to perform assignment ofupper- and lower-surface data. The flow then advances to step S3104 tocheck whether assignment for one sheet is completed. If NO in stepS3104, the flow returns to step S3101 to continue processing for thenext page.

[0202] If processing for one sheet is completed, the flow advances tothe processing of actually making the printer driver print. In stepS3105, the print driver is notified of the page start. In the case ofsoftware that operates on Windows, for example, a notification of thestart of processing for the next surface can be transferred to theprinter driver by invoking StartPage( ) with respect to the GDI. In stepS3106, an imposition process for the upper surface is performed, andprinting is performed. When this printing on the upper surface iscompleted, the flow advances to step S3107 to perform page endprocessing to indicate the completion of processing for one surface. Inthe case of software that operates on Windows, when EndPage( )API isinvoked with respect to the GDI, the printer driver receives anotification indicating the end of processing for one surface, andprepares for processing for the next surface.

[0203] Since assignment of upper- and lower-surface data has been donein step S3103, the flow advances to step S3108 to perform processing forthe lower surface. In the case of software that operates on Windows, if2 sided printing is designated in DEVMODE at the start of printing, thenext page is automatically printed on the lower surface by notifying thestart of processing for the next page in step S3108 without any need tospecifically notify processing for the lower surface. The processing insteps S3108 to S3110 is similar to the processing in steps S3105 toS3107. In steps S3106 and S3109, different imposition processes areperformed in accordance with the upper and lower surfaces, as shown inFIG. 20, in order to process data to be printed on the upper and lowersurfaces.

[0204] When page end processing is performed in step S3110, the printprocessing for the upper and lower surfaces of one sheet is terminated.The flow then returns to step S3101 to repeat the above processing toprint data on the next sheet. If it is determined in step S3101 that theapplication ends the print processing, it is determined in step S3102that there is no data to be processed. The print processing is thenterminated.

[0205] The present invention may be applied to a system constituted by aplurality of devices (e.g., a host computer, an interface device, areader, a printer, and the like) or an apparatus comprising a singledevice (e.g., a copying machine, a facsimile apparatus, or the like).

[0206] The object of the present invention is realized even by supplyinga storage medium storing software program codes for realizing thefunctions of the above-described embodiment to a system or apparatus,and causing the computer (or a CPU or an MPU) of the system or apparatusto read out and execute the program codes stored in the storage medium.

[0207] In this case, the program codes read out from the storage mediumrealize the functions of the above-described embodiment by themselves,and the storage medium storing the program codes constitutes the presentinvention.

[0208] As a storage medium for supplying the program codes, a floppydisk, a hard disk, an optical disk, a magnetooptical disk, a CD-ROM, aCD-R, a magnetic tape, a nonvolatile memory card, a ROM, or the like canbe used.

[0209] The functions of the above-described embodiment are realized notonly when the readout program codes are executed by the computer butalso when the OS (Operating System) running on the computer performspart or all of actual processing on the basis of the instructions of theprogram codes.

[0210] The functions of the above-described embodiment are also realizedwhen the program codes read out from the storage medium are written inthe memory of a function expansion board inserted into the computer or afunction expansion unit connected to the computer, and the CPU of thefunction expansion board or function expansion unit performs part or allof actual processing on the basis of the instructions of the programcodes.

[0211] As has been described above, according to the present invention,a sheet can be segmented into a plurality of areas, and upper- andlower-surface data can be laid out in the respective segmented areas incorrespondence with each other.

[0212] As many apparently widely different embodiments of the presentinvention can be made without departing from the spirit and scopethereof, it is to be understood that the invention is not limited to thespecific embodiments thereof except as defined in the appended claims.

What is claimed is:
 1. An information processing apparatus whichsegments a surface of a sheet into a plurality of areas and controlslayout of print data in the respective segmented areas, comprising:print setting means for making a print setting; determination means fordetermining whether a surface to an imposition process is an upper orlower surface; page order setting means for setting page orders on theupper and lower surfaces which match each other in accordance with thedetermination result; and imposition process means for performing animposition process on the basis of the set page orders.
 2. The apparatusaccording to claim 1, wherein said determination means automaticallydetermines the upper or lower surface in 2 sided printing.
 3. Theapparatus according to claim 1, wherein said print setting means hasdesignation means for allowing a user to designate processing for theupper or lower surface, and said determination means performsdetermination on the basis of user designation by said designationmeans.
 4. The apparatus according to claim 3, wherein said designationmeans performs designation through an interface that allows designationof an upper or lower surface without mediacy of a GUI.
 5. The apparatusaccording to claim 1, wherein when a layout that is always uniquelydetermined by a specific type of sheet is to be made, and the specifictype of sheet is designated, a print setting GUI is controlled so as notto make any setting that influences the layout.
 6. The apparatusaccording to claim 1, further comprising security processing means forperforming security processing and charging upon designation of thespecific type of sheet.
 7. The apparatus according to claim 1, whereinthe specific type of sheet is a four-postcard sheet having postcardsarranged in a 2×2 matrix.
 8. The apparatus according to claim 1, whereinsaid print setting means can designate that part of a sheet has alreadybeen used, and said page order setting means makes a setting to set onlyremaining areas as layout targets on the basis of information of theused area designated by said print setting means.
 9. The apparatusaccording to claim 8, wherein said page order setting means setsremaining areas of a first sheet as layout targets by using informationof a used area designated by said print setting means, and sets allareas of a second and subsequent sheets as layout targets.
 10. Theapparatus according to claim 1, further comprising spool means for,before generating print data to be transmitted to a printer, temporarilystoring the print data in an intermediate code form of a data formdifferent from a data form of the print data, despool means forgenerating the print data to be transmitted to the printer from the datatemporarily stored in the intermediate code form, and means forgenerating a control command to the printer.
 11. A print control methodfor an information processing apparatus which segments a surface of asheet into a plurality of areas and controls layout of print data in therespective segmented areas, comprising: the print setting step of makinga print setting; the determination step of determining whether a surfaceto an imposition process is an upper or lower surface; the page ordersetting step of setting page orders on the upper and lower surfaceswhich match each other in accordance with the determination result; andthe imposition process step of performing an imposition process on thebasis of the set page orders.
 12. The method according to claim 11,wherein in the determination step, the upper or lower surface isautomatically determined in 2 sided printing.
 13. The method accordingto claim 11, wherein the print setting step has the designation step ofallowing a user to designate processing for the upper or lower surface,and in the determination step, determination is performed on the basisof user designation in the designation step.
 14. The method according toclaim 13, wherein in the designation step, designation is performedthrough an interface that allows designation of an upper or lowersurface without mediacy of a GUI.
 15. The method according to claim 11,wherein when a layout that is always uniquely determined by a specifictype of sheet is to be made, and the specific type of sheet isdesignated, a print setting GUI is controlled so as not to make anysetting that influences the layout.
 16. The method according to claim11, further comprising the security processing step of performingsecurity processing and charging upon designation of the specific typeof sheet.
 17. The method according to claim 11, wherein the specifictype of sheet is a four-postcard sheet having postcards arranged in a2×2 matrix.
 18. The method according to claim 11, wherein in the printsetting step, it can be designated that part of a sheet has already beenused, and in the page order setting step, a setting is made to set onlyremaining areas as layout targets on the basis of information of theused area designated in the print setting step.
 19. The method accordingto claim 18, wherein in the page order setting step, remaining areas ofa first sheet are set as layout targets by using information of a usedarea designated in the print setting step, and all areas of a second andsubsequent sheets are set as layout targets.
 20. The method according toclaim 11, further comprising the spool step of, before generating printdata to be transmitted to a printer, temporarily storing the print datain an intermediate code form of a data form different from a data formof the print data, the despool step of generating the print data to betransmitted to the printer from the data temporarily stored in theintermediate code form, and the step of generating a control command tothe printer.
 21. A computer-readable storage medium storing a programfor a print control method for an information processing apparatus whichsegments a surface of a sheet into a plurality of areas and controlslayout of print data in the respective segmented areas, the programincluding: a module for generating a control command to a printer; aprint setting module for making a print setting; a determination modulefor determining whether a surface to an imposition process is an upperor lower surface; a page order setting module for setting page orders onthe upper and lower surfaces which match each other in accordance withthe determination result; and an imposition process module forperforming an imposition process on the basis of the set page orders.22. The medium according to claim 21, wherein the determination moduleautomatically determines the upper or lower surface in 2 sided printing.23. The medium according to claim 21, wherein the print setting modulehas a designation module for allowing a user to designate processing forthe upper or lower surface, and the determination module determines onthe basis of user designation by the designation module.
 24. The mediumaccording to claim 23, wherein the designation module performsdesignation through an interface that allows designation of an upper orlower surface without mediacy of a GUI.
 25. The medium according toclaim 21, wherein when a layout that is always uniquely determined by aspecific type of sheet is to be made, and the specific type of sheet isdesignated, a print setting GUI is controlled so as not to make anysetting that influences the layout.
 26. The medium according to claim21, further comprising a security processing module for performingsecurity processing and charging upon designation of the specific typeof sheet.
 27. The medium according to claim 21, wherein the specifictype of sheet is a four-postcard sheet having postcards arranged in a2×2 matrix.
 28. The medium according to claim 21, wherein the printsetting module can designate that part of a sheet has already been used,and the page order setting module makes a setting to set only remainingareas as layout targets on the basis of information of the used areadesignated by the print setting module.
 29. The medium according toclaim 28, wherein the page order setting module sets remaining areas ofa first sheet as layout targets by using information of a used areadesignated by the print setting module, and sets all areas of a secondand subsequent sheets as layout targets.
 30. The medium according toclaim 21, further comprising: a spool module for, before generatingprint data to be transmitted to a printer, temporarily storing the printdata in an intermediate code form of a data form different from a dataform of the print data; and a despool module for generating the printdata to be transmitted to the printer from the data temporarily storedin the intermediate code form.
 31. A program for a print control programfor an information processing apparatus which segments a surface of asheet into a plurality of areas and controls layout of print data in therespective segmented areas, the program causing a computer to executethe step of generating a control command to a printer; the print settingstep of making a print setting; the determination step of determiningwhether a surface to an imposition process is an upper or lower surface;the page order setting step of setting page orders on the upper andlower surfaces which match each other in accordance with thedetermination result; and the imposition process step of performing animposition process on the basis of the set page orders.
 32. The programaccording to claim 31, wherein in the determination step, the upper orlower surface is automatically determined in 2 sided printing.
 33. Theprogram according to claim 31, wherein the print setting step has thedesignation step of allowing a user to designate processing for theupper or lower surface, and in the determination step, determination isperformed on the basis of user designation in the designation step. 34.The program according to claim 33, wherein in the designation step,designation is performed through an interface that allows designation ofan upper or lower surface without mediacy of a GUI.
 35. The programaccording to claim 31, wherein when a layout that is always uniquelydetermined by a specific type of sheet is to be made, and the specifictype of sheet is designated, a print setting GUI is controlled so as notto make any setting that influences the layout.
 36. The programaccording to claim 31, further comprising the security processing stepof performing security processing and charging upon designation of thespecific type of sheet.
 37. The program according to claim 31, whereinthe specific type of sheet is a four-postcard sheet having postcardsarranged in a 2×2 matrix.
 38. The program according to claim 31, whereinin the print setting step, it can be designated that part of a sheet hasalready been used, and in the page order setting step, a setting is madeto set only remaining areas as layout targets on the basis ofinformation of the used area designated in the print setting step. 39.The program according to claim 38, wherein in the page order settingstep, remaining areas of a first sheet are set as layout targets byusing information of a used area designated in the print setting step,and all areas of a second and subsequent sheets are set as layouttargets.
 40. The program according to claim 31, wherein the programfurther causes the computer to execute the spool step of, beforegenerating print data to be transmitted to a printer, temporarilystoring the print data in an intermediate code form of a data formdifferent from a data form of the print data, and the despool step ofgenerating the print data to be transmitted to the printer from the datatemporarily stored in the intermediate code form.